<template>
	<view>
		<!-- 面试题列表 -->
		<u-collapse >
			<u-collapse-item :title="(index+1) +'、'+item.iq_name" v-for="(item, index) in itemList" :key="index">
				<view style="height: 40px;">
					<button size="mini" type="default" class="mybutton"  style="width: 100px;">取消收藏</button>
					<button size="mini" type="error" class="mybutton">纠错</button>									
				</view>
				<rich-text :nodes="item.iq_content.replace(/\<img/gi, '<img style=max-width:100%;height:auto')"></rich-text>
			</u-collapse-item>
		</u-collapse>
		<u-divider v-if="itemList.length > 0">共收藏{{itemList.length}}道面试题</u-divider>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				//面试题列表
				itemList: [
					{
						iq_name: 'String&StringBuild&StringBuilf的区别',
						iq_content:
							'<div class="htmledit_views" id="content_views"> <p><strong>一、Java String 类——String字符串常量</strong></p><p>字符串广泛应用 在Java 编程中，在 Java 中字符串属于<strong>对</strong><strong>象</strong>，Java 提供了<strong> </strong><strong>String 类来</strong><strong>创建</strong><strong>和</strong><strong>操作</strong><strong>字符串</strong>。</p><p>需要注意的是，String的值是不可变的，这就导致每次对String的操作都会生成<strong>新的String对象</strong>，这样不仅效率低下，而且大量浪费有限的内存空间。我们来看一下这张对String操作时内存变化的图：</p><p><img alt="" class="has" src="https://img-blog.csdn.net/20180411091757991?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTEwMTE3Mw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70" /></p><p>我们可以看到，初始String值为“hello”，然后在这个字符串后面加上新的字符串“world”，这个过程是需要重新在栈堆内存中开辟内存空间的，最终得到了“hello world”字符串也相应的需要开辟内存空间，这样短短的两个字符串，却需要开辟三次内存空间，不得不说这是对内存空间的<strong>极大浪费</strong>。为了应对经常性的字符串相关的操作，谷歌引入了两个新的类——StringBuffer类和StringBuild类来对此种变化字符串进行处理。</p><p><strong>二、Java StringBuffer 和 StringBuilder 类——StringBuffer字符串变量、StringBuilder字符串变量</strong></p><p><strong><img alt="" class="has" src="https://img-blog.csdn.net/20180411092222821?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTEwMTE3Mw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70" /></strong></p><p>当<strong>对字符串进行修改</strong>的时候，需要使用 StringBuffer 和 StringBuilder 类。</p><p>和 String 类不同的是，StringBuffer 和 StringBuilder 类的对象能够被多次的修改，并且<strong>不产生新的未使用对象</strong>。</p><p>StringBuilder 类在 Java 5 中被提出，它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的（不能同步访问）。</p><p>由于 StringBuilder 相较于 StringBuffer 有速度优势，<strong>所以多数情况下建议使用 StringBuilder 类</strong>。然而在应用程序要求线程安全的情况下，则必须使用 StringBuffer 类。</p><p><strong>三者的继承结构</strong></p><p><strong><img alt="" class="has" src="https://img-blog.csdn.net/20180411092328691?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTEwMTE3Mw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70" /></strong></p><p><strong>三者的区别</strong>：</p><p><img alt="" class="has" src="https://img-blog.csdn.net/20180411092400746?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTEwMTE3Mw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70" /></p><p>（1）字符修改上的区别（主要，见上面分析）</p><p>（2）初始化上的区别，String可以空赋值，后者不行，报错</p><p>①String</p><p>String s = null;   </p><p>String s = “abc”;   </p><p>②StringBuffer</p><p>StringBuffer s = null; //结果警告：Null pointer access: The variable result can only be null at this location</p><p>StringBuffer s = new StringBuffer();//StringBuffer对象是一个空的对象</p><p>StringBuffer s = new StringBuffer(“abc”);//创建带有内容的StringBuffer对象,对象的内容就是字符串”</p><p><strong>小结</strong>：（1）如果要操作少量的数据用 String；</p><p>（2）多线程操作字符串缓冲区下操作大量数据 StringBuffer；</p><p>（3）<strong>单线程操作字符串缓冲区下操作大量数据 StringBuilder</strong>。</p><p>转载自<a href="https://blog.csdn.net/weixin_41101173/article/details/79677982">https://blog.csdn.net/weixin_41101173/article/details/79677982</a>，感谢整理和分享！</p></div>'
					},
					{
						iq_name: '生活中不是缺少美，而是缺少发现美的眼睛',
						iq_content: '学会欣赏，实际是一种积极生活的态度，是生活的调味品，会在欣赏中发现生活的美'
					},
					{
						iq_name: '周围一些不起眼的人、事、物，或许都隐藏着不同凡响的智慧',
						iq_content: '但是据说雕刻大卫像所用的这块大理石，曾被多位雕刻家批评得一无是处，有些人认为这块大理石采凿得不好，有些人嫌它的纹路不够美'
					}
				],
			}
		},
		methods: {
			
		}
	}
</script>

<style>
.mybutton{
	color: #FFFFFF;
	width: 70px;
	background-color: #DD524D;
	float: right;
	margin-right: 10px;
}
</style>
